草庐IT

2D 地图绘制

全部标签

windows - 可以在不同应用程序的窗口上绘制 OpenGL HUD 叠加层(不闪烁)吗?

我需要在另一个应用程序之上绘制一个由线条和文本组成的叠加层。所讨论的应用程序是3D外部世界视点,叠加层是平视显示器。我无权访问来自外部世界应用程序的任何类型的回调以在其绘制循环中执行绘制代码。直接在应用程序窗口上绘制会导致闪烁,因为绘制循环不会同步,所以对我来说这似乎不是一个选项。我能想到的一种方法是捕获外部世界应用程序的像素并将它们流式传输到我的应用程序中,这样我就可以在同一个绘制循环中在顶部绘制叠加层,但这似乎效率很低。有没有一种有效的方法可以在不闪烁的情况下绘制外部世界应用程序?是否可以在最终的显卡输出上/以显示器的刷新率绘制一些东西?附言它不一定是OpenGL,但HUD已经用O

windows - 使用GDI+绘制PixelFormat32bppPARGB图像使用常规公式而不是预乘公式

这里是一些显示问题的最小代码:staticconstintMAX_WIDTH=320;staticconstintMAX_HEIGHT=320;Gdiplus::BitmapforegroundImg(MAX_WIDTH,MAX_HEIGHT,PixelFormat32bppPARGB);{Gdiplus::Graphicsg(&foregroundImg);g.Clear(Gdiplus::Color(10,255,255,255));}Gdiplus::BitmapsoftwareBitmap(MAX_WIDTH,MAX_HEIGHT,PixelFormat32bppPARGB);

c++ - 如何处理 win32 winapi 中无效绘制的 ComboBox 控件?

我遇到了使用WinAPI无效绘制ComboBox的问题。当您最小化应用程序并在未隐藏ComboBox控件的选择后恢复它时,它看起来像这样:如您所见,OK按钮获得了焦点,但ComboBox的选择仍未隐藏。当控件失去输入焦点时,ComboBox的正常行为会隐藏选择。代码:#defineWIN32_MEAN_AND_LEAN#include#include#include#include#includestructwindow_context{HINSTANCE_instance;HWND_window;HWND_combo_box2;HWND_ok_button;window_contex

python - 如何使用 PyOpengl 或 pyglet 在桌面上绘制?

我正在编写一个应用程序,希望使用OpenGL在Windows7桌面上绘制基本的多边形和椭圆形。根据thispreviousquestion,这可能是通过将窗口句柄获取到桌面,我知道该怎么做。DrawOpenGLonthewindowsdesktopwithoutawindow但是,我有两个问题:您实际上在哪里告诉OpenGL要绘制到哪个窗口?我一直在查看nehe示例1,但我根本无法弄清楚它究竟在哪里将hwnd传递给openGL。我是给openGL一个窗口句柄还是一个设备上下文?是否可以使用PyOpenGL或Pyglet来做到这一点?还是我必须用C语言编写,然后将代码包装在ctypes中

尝试绘制 : matplotlib. gif 时找不到 python matplotlib 错误

我在Win732位(Python版本为2.7.3)上使用PyDev和Eclipse。我还安装了Scipy和Matplotlib。现在,我要做的是将绘制的数据保存为pdf文件。这是一个代码示例,尽管它与我的问题无关:importscipyasspimportmatplotlib.pyplotaspltfromscipy.ioimportloadmatfname="calc.mat"data=loadmat(fname)train_acc,test_acc=data['train'],data['test']#plotresultsfig=plt.figure(1,figsize=(12,

windows - 绘制自定义标题(框架)时如何在 alt+tab 切换器中绘制标题?

我需要画一个自定义的标题栏,这里我自己画了窗口标题。HDChdc=GetWindowDC(hwnd);if(hdc&&prepareTitleBarDC(getWidth(),27)){SetWindowText(hwnd,_T(""));DefWindowProc(hwnd,WM_NCPAINT,wParam,lParam);m_titleBar->setSize(getWidth(),27);m_titleBar->setBkColor(SkColorSetARGB(0x00,0x00,0x00,0x00));m_titleBar->paintEvent(m_pTitleBarDC

c# - 屏幕保护程序如何在 Windows 8 中继续在桌面上绘制?

我正在VS2010上用C#.NET4.0开发一个屏幕保护程序,它需要在实际显示屏幕之前做一些处理(相当复杂的数据库访问)。这很好,因为用户不知道这个处理正在进行,然后当一切准备就绪时,全屏表单就会启动。也就是说,除非我们在Windows8上运行。在Microsoft社区(http://answers.microsoft.com/en-us/windows/forum/windows_8-desktop/bubbles-screensaver-has-black-background/e0807324-5ca6-4abe-b6ba-716848b41ff5?page=4)上搜索后发现Wi

windows - 硬件 H264 编码 ID3D11Texture2D with Media Foundation

我正在从事一个捕获屏幕并对其进行编码的项目。我已经可以使用桌面复制API(Win8+)捕获屏幕。使用API,我可以获得ID3D11Texture2D纹理并将它们从GPU传输到CPU,然后使用libx264对其进行编码。但是,将纹理从GPU拉到CPU可能是一个瓶颈,可能会降低fps。libx264也占用CPU周期(取决于质量)来编码帧。我正在寻找在GPU本身中编码ID3D11Texture2D纹理,而不是使用CPU进行编码作为优化。我已经检查了文档和一些示例代码,但没有成功。如果有人可以向我指出一些可靠地完成我想要的事情的资源,我将不胜感激。 最佳答案

windows - TabCtrl_SetItemSize 和用户绘制的选项卡控件

我有这个Win32用户绘制的选项卡控件,它创建为:CONTROL"Tab1",IDC_TAB_CONT,"SysTabControl32",TCS_BOTTOM|TCS_OWNERDRAWFIXED|NOTWS_VISIBLE,0,14,185,88我希望此控件能够调整其选项卡的大小,因为永远不必看到“滑动箭头”:现在,除了它不会响应TabCtrl_SetItemSize之外,这个控件的几乎所有内容都按预期工作。尽我所能,当我绘制标签时(在传递给WM_DRAWITEM的DRAWITEMSTRUCT中),我得到的标签大小始终是适合最长标题的大小它们,而不是我用TabCtrl_SetIte

c++ - 未聚焦时 Direct2D 窗口变黑

我有一个Direct2D窗口,它在聚焦时画得很好;然而,当焦点移动到另一个窗口(同一个应用程序或另一个)时,整个窗口变黑。我将问题归结为ID2D1HwndRenderTarget::Clear的使用。此功能对我的应用程序至关重要,因为没有它,绘画会变得相当……奇怪。有没有一种方法可以让未聚焦的Direct2D窗口正常绘制(注意:WM_PAINT会像往常一样被调用,Clear也是如此,BeginPaint等都没有错误)提前致谢。 最佳答案 来自MSDN,HandlingDeviceLossWhileyourprogramisrunni